home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagn_r.zip / NETWORK.SWG / 0024_Encryped logins.pas < prev    next >
Pascal/Delphi Source File  |  1994-08-24  |  3KB  |  103 lines

  1. {
  2.  SM> Have you got any idea on how to do a login under Novell 3.11+?
  3.  
  4.  SM> I have some source (SWAG has source for a great TPU), but
  5.  SM> unfortunatly it doesn't do encrypted logins.. I managed to find
  6.  SM> *some* reference to it in the interrupt list (int 21h, the F2h
  7.  SM> multiplexor functions 17h/18h), but it didn't give any details on
  8.  SM> how this is done...
  9.  
  10.  hmmm. Novell never released any informations about Password Encrytion !
  11.  
  12.  You got two choices (:-)
  13.  
  14. 1.   do a "Set Allow Unencrypted Passwords = ON" on the server console,
  15.      use the following, ripped from an old src "Novapi.zip:Novell.pas"
  16.  
  17. ------------------------------------------------------------------------}
  18. uses dos;
  19. [...]
  20.  
  21. { obj_type:   User = 1, group =2 printserver = 3 }
  22.  
  23. procedure login_to_file_server( obj_type:integer;
  24.                               _name,
  25.                               _password : string;
  26.                           var retcode:integer);
  27. var
  28.       regs : registers;
  29.  
  30.       request_buffer : record
  31.             B_length : integer;
  32.          subfunction : byte;
  33.               o_type : packed array [1..2] of byte;
  34.          name_length : byte;
  35.             obj_name : packed array [1..47] of byte;
  36.      password_length : byte;
  37.             password : packed array [1..27] of byte;
  38.                  end;
  39.  
  40.         reply_buffer : record
  41.             R_length : integer;
  42.                  end;
  43.  
  44.                count : integer;
  45.  
  46. begin
  47. With request_buffer do
  48. begin
  49.  B_length := 79;
  50.  subfunction := $14;
  51.  o_type[1] := 0;
  52.  o_type[2] := obj_type;
  53.  for count := 1 to 47 do obj_name[count] := $0;
  54.  for count := 1 to 27 do password[count] := $0;
  55.  if length(_name) > 0 then
  56.     for count := 1 to length(_name) do
  57. obj_name[count]:=ord(upcase(_name[count]));
  58.  if length(_password) > 0 then
  59.     for count := 1 to length(_password) do
  60. password[count]:=ord(upcase(_password[count]));
  61.  {set to full length of field}
  62.  name_length := 47;
  63.  password_length := 27;
  64. end;
  65. With reply_buffer do
  66. begin
  67.  R_length := 0;
  68. end;
  69.   With Regs Do Begin
  70.     Ah := $e3;                 { moved to $F2 for v3.x ??? }
  71.     Ds := Seg(Request_Buffer);
  72.     Si := Ofs(Request_Buffer);
  73.     Es := Seg(reply_buffer);
  74.     Di := Ofs(reply_buffer);
  75.   End;
  76.   MsDos(Regs);
  77.   retcode := regs.al
  78. end;
  79.  
  80. procedure logout;
  81. {logout from all file servers}
  82. var regs : registers;
  83. begin
  84.  regs.ah := $D7;
  85.  msdos(regs);
  86. end;
  87.  
  88. procedure logout_from_file_server(var id: integer);
  89. {logout from one file server}
  90. var regs : registers;
  91. begin
  92.  regs.ah := $F1;
  93.  regs.al := $02;
  94.  regs.dl := id;
  95.  msdos(regs);
  96. end;
  97.  
  98. ------------------------------------------------------------------------
  99.  
  100. 2.   get a copy of "Charles Rose: Netware Programming". There are some
  101.      <obj> for "C", and in my German version  TPU's for Turbo/BP" !
  102.  
  103.